import { existsSync } from 'fs'
import { mkdir, writeFile } from 'fs/promises'

/**
 * 将数据写入 JSON 文件
 * @param path 文件路径
 * @param data 要写入的数据对象
 * @param spaces 缩进空格数，默认为 0（不缩进）
 * @returns Promise<void>
 */
export const writeJson = (path: string, data: any, spaces = 0) =>
  writeFile(path, JSON.stringify(data, undefined, spaces), 'utf-8')

/**
 * 确保目录存在，如果不存在则创建
 * @param path 目录路径
 * @returns Promise<void>
 */
export const ensureDir = async (path: string) => {
  if (!existsSync(path)) await mkdir(path, { recursive: true })
}
